38 research outputs found
Recommended from our members
The Design, Implementation, and Evaluation of Software and Architectural Support for ARM Virtualization
The ARM architecture is dominating in the mobile and embedded markets and is making an upwards push into the server and networking markets where virtualization is a key technology. Similar to x86, ARM has added hardware support for virtualization, but there are important differences between the ARM and x86 architectural designs. Given two widely deployed computer architectures with different approaches to hardware virtualization support, we can evaluate, in practice, benefits and drawbacks of different approaches to architectural support for virtualization.
This dissertation explores new approaches to combining software and architectural support for virtualization with a focus on the ARM architecture and shows that it is possible to provide virtualization services an order of magnitude more efficiently than traditional implementations.
First, we investigate why the ARM architecture does not meet the classical requirements for virtualizable architectures and present an early prototype of KVM for ARM, a hypervisor using lightweight paravirtualization to run VMs on ARM systems without hardware virtualization support. Lightweight paravirtualization is a fully automated approach which replaces sensitive instructions with privileged instructions and requires no understanding of the guest OS code.
Second, we introduce split-mode virtualization to support hosted hypervisor designs using ARM's architectural support for virtualization. Different from x86, the ARM virtualization extensions are based on a new hypervisor CPU mode, separate from existing CPU modes. This separate hypervisor CPU mode does not support running existing unmodified OSes, and therefore hosted hypervisor designs, in which the hypervisor runs as part of a host OS, do not work on ARM. Split-mode virtualization splits the execution of the hypervisor such that the host OS with core hypervisor functionality runs in the existing kernel CPU mode, but a small runtime runs in the hypervisor CPU mode and supports switching between the VM and the host OS. Split-mode virtualization was used in KVM/ARM, which was designed from the ground up as an open source project and merged in the mainline Linux kernel, resulting in interesting lessons about translating research ideas into practice.
Third, we present an in-depth performance study of 64-bit ARMv8 virtualization using server hardware and compare against x86. We measure the performance of both standalone and hosted hypervisors on both ARM and x86 and compare their results. We find that ARM hardware support for virtualization can enable faster transitions between the VM and the hypervisor for standalone hypervisors compared to x86, but results in high switching overheads for hosted hypervisors compared to both x86 and to standalone hypervisors on ARM. We identify a key reason for high switching overhead for hosted hypervisors being the need to save and restore kernel mode state between the host OS kernel and the VM kernel. However, standalone hypervisors such as Xen, cannot leverage their performance benefit in practice for real application workloads. Other factors related to hypervisor software design and I/O emulation play a larger role in overall hypervisor performance than low-level interactions between the hypervisor and the hardware.
Fourth, realizing that modern hypervisors rely on running a full OS kernel, the hypervisor OS kernel, to support their hypervisor functionality, we present a new hypervisor design which runs the hypervisor and its hypervisor OS kernel in ARM's separate hypervisor CPU mode and avoids the need to multiplex kernel mode CPU state between the VM and the hypervisor. Our design benefits from new architectural features, the virtualization host extensions (VHE), in ARMv8.1 to avoid modifying the hypervisor OS kernel to run in the hypervisor CPU mode. We show that the hypervisor must be co-designed with the hardware features to take advantage of running in a separate CPU mode and implement our changes to KVM/ARM. We show that running the hypervisor OS kernel in a separate CPU mode from the VM and taking advantage of ARM's ability to quickly switch between the VM and hypervisor results in an order of magnitude reduction in overhead for important virtualization microbenchmarks and reduces the overhead of real application workloads by more than 50%
KVM/ARM: Experiences Building the Linux ARM Hypervisor
As ARM CPUs become increasingly common in mobile devices and servers, there is a growing demand for providing the benefits of virtualization for ARMbased devices. We present our experiences building the Linux ARM hypervisor, KVM/ARM, the first full system ARM virtualization solution that can run unmodified guest operating systems on ARM multicore hardware. KVM/ARM introduces split-mode virtualization, allowing a hypervisor to split its execution across CPU modes to take advantage of CPU mode-specific features. This allows KVM/ARM to leverage Linux kernel services and functionality to simplify hypervisor development and maintainability while utilizing recent ARM hardware virtualization extensions to run application workloads in guest operating systems with comparable performance to native execution. KVM/ARM has been successfully merged into the mainline Linux 3.9 kernel, ensuring that it will gain wide adoption as the virtualization platform of choice for ARM. We provide the first measurements on real hardware of a complete hypervisor using ARM hardware virtualization support. Our results demonstrate that KVM/ARM has modest virtualization performance and power costs, and can achieve lower performance and power costs compared to x86-based Linux virtualization on multicore hardware
Recommended from our members
A Measurement Study of ARM Virtualization Performance
ARM servers are becoming increasingly common, making server technologies such as virtualization for ARM of growing importance. We present the first in-depth study of ARM virtualization performance on ARM server hardware, including measurements of two popular ARM and x86 hypervisors, KVM and Xen. We show how the ARM hardware support for virtualization can support much faster transitions between the VM and the hypervisor, a key hypervisor operation. However, current hypervisor designs, including both KVM (Type 1) and Xen (Type 2), are not able to lever- age this performance benefit in practice for real application workloads. We discuss the reasons why and show that other factors related to hypervisor software design and implementation have a larger role in overall performance than the speed of micro architectural operations. Based on our measurements, we discuss changes to ARM's hardware virtualization support that can potentially bridge the gap to bring its faster virtual machine exit mechanism to modern Type 2 hypervisors running real applications. These changes have been incorporated into the latest ARM architecture
The amplitude of solar oscillations using stellar techniques
The amplitudes of solar-like oscillations depend on the excitation and
damping, both of which are controlled by convection. Comparing observations
with theory should therefore improve our understanding of the underlying
physics. However, theoretical models invariably compute oscillation amplitudes
relative to the Sun, and it is therefore vital to have a good calibration of
the solar amplitude using stellar techniques. We have used daytime spectra of
the Sun, obtained with HARPS and UCLES, to measure the solar oscillations and
made a detailed comparison with observations using the BiSON helioseismology
instrument. We find that the mean solar amplitude measured using stellar
techniques, averaged over one full solar cycle, is 18.7 +/- 0.7 cm/s for the
strongest radial modes (l=0) and 25.2 +/- 0.9 cm/s for l=1. In addition, we use
simulations to establish an equation that estimates the uncertainty of
amplitude measurements that are made of other stars, given that the mode
lifetime is known. Finally, we also give amplitudes of solar-like oscillations
for three stars that we measured from a series of short observations with HARPS
(gamma Ser, beta Aql and alpha For), together with revised amplitudes for five
other stars for which we have previously published results (alpha Cen A, alpha
Cen B, beta Hyi, nu Ind and delta Pav).Comment: 8 pages, accepted by ApJ. Minor wording changes and added a referenc
Recommended from our members
Cells: A Virtual Mobile Smartphone Architecture
Cellphones are increasingly ubiquitous, so much so that many users are inconveniently forced to carry multiple cellphones to accommodate work, personal, and geographic mobility needs. We present Cells, a virtualization architecture for enabling multiple virtual smartphones to run simultaneously on the same physical cellphone device in a securely isolated manner. Cells introduces a usage model of having one foreground virtual phone and multiple background virtual phones. This model enables a new device namespace mechanism and novel device proxies that integrate with lightweight operating system virtualization to efficiently and securely multiplex phone hardware devices across multiple virtual phones while providing native hardware device performance to all applications. Virtual phone features include fully-accelerated graphics for gaming, complete power management features, and full telephony functionality with separately assignable telephone numbers and caller ID support. We have implemented a Cells prototype that supports multiple Android virtual phones on the same phone hardware. Our performance results demonstrate that Cells imposes only modest runtime and memory overhead, works seamlessly across multiple hardware devices including Google Nexus 1 and Nexus S phones and an NVIDIA tablet, and transparently runs all existing Android applications without any modifications
Solar-like oscillations in the G2 subgiant beta Hydri from dual-site observations
We have observed oscillations in the nearby G2 subgiant star beta Hyi using
high-precision velocity observations obtained over more than a week with the
HARPS and UCLES spectrographs. The oscillation frequencies show a regular comb
structure, as expected for solar-like oscillations, but with several l=1 modes
being strongly affected by avoided crossings. The data, combined with those we
obtained five years earlier, allow us to identify 28 oscillation modes. By
scaling the large frequency separation from the Sun, we measure the mean
density of beta Hyi to an accuracy of 0.6%. The amplitudes of the oscillations
are about 2.5 times solar and the mode lifetime is 2.3 d. A detailed comparison
of the mixed l=1 modes with theoretical models should allow a precise estimate
of the age of the star.Comment: 13 pages, 14 figures, accepted by ApJ. Fixed minor typo (ref to Fig
14
A multi-site campaign to measure solar-like oscillations in Procyon. II. Mode frequencies
We have analyzed data from a multi-site campaign to observe oscillations in
the F5 star Procyon. The data consist of high-precision velocities that we
obtained over more than three weeks with eleven telescopes. A new method for
adjusting the data weights allows us to suppress the sidelobes in the power
spectrum. Stacking the power spectrum in a so-called echelle diagram reveals
two clear ridges that we identify with even and odd values of the angular
degree (l=0 and 2, and l=1 and 3, respectively). We interpret a strong, narrow
peak at 446 muHz that lies close to the l=1 ridge as a mode with mixed
character. We show that the frequencies of the ridge centroids and their
separations are useful diagnostics for asteroseismology. In particular,
variations in the large separation appear to indicate a glitch in the
sound-speed profile at an acoustic depth of about 1000 s. We list frequencies
for 55 modes extracted from the data spanning 20 radial orders, a range
comparable to the best solar data, which will provide valuable constraints for
theoretical models. A preliminary comparison with published models shows that
the offset between observed and calculated frequencies for the radial modes is
very different for Procyon than for the Sun and other cool stars. We find the
mean lifetime of the modes in Procyon to be 1.29 +0.55/-0.49 days, which is
significantly shorter than the 2-4 days seen in the Sun.Comment: accepted for publication in Ap
KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor
As ARM CPUs become increasingly common in mobile devices and servers, there is a growing demand for providing the benefits of virtualization for ARM-based devices. We present our experiences building the Linux ARM hypervisor, KVM/ARM, the first full system ARM virtualization solution that can run unmodified guest operating systems on ARM multicore hardware. KVM/ARM introduces split-mode virtualization, allowing a hypervisor to split its execution across CPU modes and be integrated into the Linux kernel. This allows KVM/ARM to leverage existing Linux hardware support and functionality to simplify hypervisor development and maintainability while utilizing recent ARM hardware virtualization extensions to run virtual machines with comparable performance to native execution. KVM/ARM has been successfully merged into the mainline Linux kernel, ensuring that it will gain wide adoption as the virtualization platform of choice for ARM. We provide the first measurements on real hardware of a complete hypervisor using ARM hardware virtualization support. Our results demonstrate that KVM/ARM has modest virtualization performance and power costs, and can achieve lower performance and power costs compared to x86-based Linux virtualization on multicore hardware